<!DOCTYPE html>
<html>
<!--
Copyright 2007 The Closure Library Authors. All Rights Reserved.

Use of this source code is governed by the Apache License, Version 2.0.
See the COPYING file for details.
-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Closure Unit Tests - goog.graphics.ext.coordinates</title>
<script src="../../base.js"></script>
<script>
  goog.require('goog.graphics');
  goog.require('goog.graphics.ext.coordinates');
  goog.require('goog.testing.jsunit');
</script>
</head>
<body>

<script>
  function testIsPercent() {
    assert('50% is a percent',
        goog.graphics.ext.coordinates.isPercent_('50%'));
    assert('50 is not a percent',
        !goog.graphics.ext.coordinates.isPercent_('50'));
  }

  function testIsPixels() {
    assert('50px is pixels', goog.graphics.ext.coordinates.isPixels_('50px'));
    assert('50 is not pixels', !goog.graphics.ext.coordinates.isPixels_('50'));
  }

  function testIsSpecial() {
    assert('50px is special', goog.graphics.ext.coordinates.isSpecial('50px'));
    assert('50% is special', goog.graphics.ext.coordinates.isSpecial('50%'));
    assert('50 is not special', !goog.graphics.ext.coordinates.isSpecial('50'));
  }

  function testComputeValue() {
    assertEquals('50% of 100 is 50', 50,
        goog.graphics.ext.coordinates.computeValue('50%', 100, null));
    assertEquals('50.5% of 200 is 101', 101,
        goog.graphics.ext.coordinates.computeValue('50.5%', 200, null));
    assertEquals('50px = 25 units when in 2x view', 25,
        goog.graphics.ext.coordinates.computeValue('50px', null, 2));
  }

  function testGenericGetValue() {
    var getValue = goog.graphics.ext.coordinates.getValue;

    var cache = {};

    assertEquals('Testing 50%', 50,
        getValue('50%', false, 100, 2, cache));

    var count = 0;
    for (var x in cache) {
      count++;
      cache[x] = 'OVERWRITE';
    }

    assertEquals('Testing cache size', 1, count);
    assertEquals('Testing cache usage', 'OVERWRITE',
        getValue('50%', false, 100, 2, cache));

    cache = {};

    assertEquals('Testing 0%', 0,
        getValue('0%', false, 100, 2, cache));
  }
</script>
</body>
</html>
